1.1 Field of the Invention
The present invention relates to systems and methods for voice messaging, as well as systems and methods for data streaming. More particularly, the present invention is a system and method for unified messaging providing cached message streams that can be selectively controlled through Dual-Tone Multifrequency (DTMF) signals or indirect graphical means.
1.2 Description of the Background Art
Data streaming has become a well-known technique for delivering potentially large amounts of paced-content information on-demand across a network. To initiate conventional data streaming operations, a client requests or establishes a streaming session with a server, in accordance with particular media processing requirements. In response, the server transmits data packets to the client at a controlled delivery rate. The client continuously processes the data packets as they are received, and thus the data streaming operations facilitate low-latency, quasi-continuous media transfer from the server to the client. The client additionally issues control commands to the server, such as rewind, fast-forward, or stop, in response to user input. Progressive Networks"" RealAudio, RealVideo, and RealPlayer products (Progressive Networks, Seattle, Wash.), designed for distributing real-time media over the Internet, provide examples of the manners in which data streaming techniques are currently employed.
Unified or integrated messaging systems perform message transfers across a computer network. In a unified messaging system, a voice server is coupled to a Private Branch Exchange (PBX) and a computer network. The computer network couples users"" computers to an electronic mail (e-mail) server, and the PBX couples computer users"" telephones to a telephone network. Each computer user""s e-mail in-box provides message notification as well as access to messaging services for e-mail messages, voice messages, and possibly other types of messages such as faxes. An example of unified messaging software is Lucent Technologies"" Unified Messenger (Lucent Technologies, Octel Messaging Division, Milpitas, Calif.).
Voice message playback involves a time-based delivery of potentially large amounts of data on demand. Thus, data streaming techniques can be advantageously employed in unified messaging environments. Prior art unified messaging systems stream voice messages from an e-mail server to a user""s computer. Based upon user preferences and/or hardware configuration, the user""s computer will either play a voice message via multimedia hardware, or stream the message to the voice server for playback over the user""s telephone.
Unfortunately, the lines or links that couple each user to the computer network are likely to be among the network""s slowest links. Voice messages to be played over a user""s telephone may therefore be particularly susceptible to interruption or breakup during playback, which is clearly unacceptable. What is needed is a means for ensuring that telephone-based voice message playback is essentially independent of the speed of the links coupling users"" computers to the network.
The present invention is a unified messaging system and method providing cached message streams. The system comprises a file server and a set of client computers coupled to a computer network; and a voice server coupled to the computer network as well as a Private Branch Exchange (PBX). The PBX is further coupled to a set of telephones. Preferably, a telephone is associated with each client computer.
The file server and client computers, in conjunction with conventional networking software, provide an electronic mail (e-mail) system through which computer users can exchange messages and message attachments. The voice server facilitates the exchange of information between the computer network and telephone users, and comprises a processing unit, a data storage unit, a network interface unit, a voice board unit, and a memory wherein a unified messaging unit resides. The unified messaging unit provides telephone answering and automated attendant functions to callers, and voice messaging services such as message inquiry, playback, forward, and reply to a set of subscribers.
The unified messaging unit includes a stream management unit comprising a foreground stream manager and a background stream manager. In response to a playback-to-telephone request received via either a telephone or a client computer, the stream management unit allocates a Local Temporary Storage Resource (LTSR) and a block occupancy array within the voice server""s memory. The LTSR serves as a temporary message cache, which a first message data stream populates and a second message data stream simultaneously depletes, as described hereafter.
The stream management unit treats a message stored upon the file server as a sequence of N data blocks, where each of blocks 1 through (Nu-) comprises a fixed-size portion of the message. A final message data block, which includes an end-of-message indicator, can be less than the fixed-size. The block occupancy array indicates which blocks comprising a message have been streamed from the file server into the LTSR.
After allocating the LTSR and block occupancy array, the stream management unit initiates the streaming of a first message block from the file server into the LTSR, and marks a first entry or element within the block occupancy array as occupied. The stream management unit next sequentially initiates the execution of the background stream manager and the foreground stream manager.
The background stream manager directs the streaming of message data blocks from the file server into the LTSR, while the foreground stream manager concurrently directs the streaming of message data from the LTSR to the voice board unit (and hence a user""s telephone). The background stream manager maintains a copy position variable that indicates a next address at which a data block is to be streamed into the LTSR, and updates block occupancy array entries. The foreground stream manager maintains a playback position variable that indicates a current address within the LTSR from which message data has been most-recently streamed to the voice board unit.
The background stream manager monitors the amount of contiguous message data that has been streamed into the LTSR relative to the current playback position, and determines whether a high threshold parameter has been exceeded. If so, the background stream manager interrupts the streaming of message data from the file server into the LTSR. The foreground stream manager monitors the amount of contiguous message data within the LTSR yet to be streamed to the voice board unit relative to the current playback position, and determines whether a low threshold parameter has been exceeded. If so, the foreground stream manager issues a resume notification to the background stream manager, thereby resuming message data streaming from the file server into the LTSR. Through the high and low threshold parameters, the present invention facilitates the periodic interruption of streaming from the file server, while allowing for uninterrupted stream delivery to the voice board unit. This in turn maximizes the file server""s ability to efficiently perform other tasks while streaming to the voice board unit occurs.
The foreground stream manager is responsive to playback commands received from a telephone or a client computer. When a playback command indicates that a jump forward or backward to a new playback position is required, the background stream manager determines whether the message data block associated with the new playback position is already present within the LTSR, and avoids any message data block re-streaming if such is the case.
Each client computer preferably includes a playback control module, which generates and maintains a graphical window or interface that shows playback position information relative to overall message size or length. The graphical window also provides user-selectable buttons corresponding to playback commands such as play, stop, pause, jump-to-beginning, jump back k seconds, jump forward k seconds, and forward-to-end. In addition, the graphical window provides a message position slider, the selection of which facilitates the generation of a jump-to-user-defined-position command.
The present invention avoids streaming the message data itself (i.e., the audio data comprising a voice message) to a client computer. Rather, the foreground stream manager issues playback position notifications to the client computer as message data is streamed from the LTSR to the voice board unit. The client computer""s playback control module updates the graphical window in response to receipt of the playback position notifications. The present invention thus effectively eliminates the message interruption and breakup problems found in the prior art, which arise when message data is streamed to client computers over slow network links.